package br.edu.faculdadeprojecao.DAO;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.edu.faculdadeprojecao.infra.JPAUtil;
import br.edu.faculdadeprojecao.modelo.Endereco;
import br.edu.faculdadeprojecao.modelo.Usuario;

public final class EnderecoDAO extends GenericDAO {

	public Endereco buscaPorID(Integer id) {
		Endereco endereco = null;

		try {
			EntityManager em = new JPAUtil().getEntityManager();
			em.getTransaction().begin();
			endereco = em.getReference(Endereco.class, id);

		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			em.close();
		}

		return endereco;
	}
	
	public void excluir(Endereco endereco) {
		try {
			EntityManager em = new JPAUtil().getEntityManager();
			em.getTransaction().begin();
			em.remove(em.getReference(Endereco.class, endereco));

		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			em.close();
		}

	}

	public Endereco enderecoPorUsuario(Usuario u) {

		EntityManager em = new JPAUtil().getEntityManager();
		Endereco endereco;
		try {
			em.getTransaction().begin();

			Query query = em
					.createQuery("select a from Endereco a where a.usuario =:usuario");
			query.setParameter("usuario", u);
			endereco = (Endereco) query.getSingleResult();

		} catch (Exception e) {
			endereco = new Endereco();
		} finally {
			em.close();
		}

		return endereco;
	}

}